home *** CD-ROM | disk | FTP | other *** search
- #!perl -w
- package version;
-
- use 5.005_04;
- use strict;
-
- use vars qw(@ISA $VERSION $CLASS *declare *qv);
-
- $VERSION = 0.77;
-
- $CLASS = 'version';
-
- # Preloaded methods go here.
- sub import {
- no strict 'refs';
- my ($class) = shift;
-
- # Set up any derived class
- unless ($class eq 'version') {
- local $^W;
- *{$class.'::declare'} = \&version::declare;
- *{$class.'::qv'} = \&version::qv;
- }
-
- my %args;
- if (@_) { # any remaining terms are arguments
- map { $args{$_} = 1 } @_
- }
- else { # no parameters at all on use line
- %args =
- (
- qv => 1,
- 'UNIVERSAL::VERSION' => 1,
- );
- }
-
- my $callpkg = caller();
-
- if (exists($args{declare})) {
- *{$callpkg."::declare"} =
- sub {return $class->declare(shift) }
- unless defined(&{$callpkg.'::declare'});
- }
-
- if (exists($args{qv})) {
- *{$callpkg."::qv"} =
- sub {return $class->qv(shift) }
- unless defined(&{"$callpkg\::qv"});
- }
-
- if (exists($args{'VERSION'})) {
- *{$callpkg."::VERSION"} = \&version::_VERSION;
- }
- }
-
- 1;
-